In TCP/IP packet transmission of digital data through a HTTP connection, it is often required to increase data transmission rate. The problem of low transmission rate arises when TCP traffic is transmitted through a HTTP connection which also uses TCP; then, transmission rate decreases due to superposition of TCP delays of the two connections, thereby leading to the decreased speed of the TCP connection transmitted through the HTTP connection. This relates both to conventional connections and to connections in which source data packets are encrypted and the encrypted data is arranged in a standard form according to parameters of the employed protocols before subsequent transmission over a network (encapsulation).
This problem is resolved by various methods, including usage of capabilities available in the protocols used.
There is a known method for detecting usage of Nagle's algorithm in an established network connection, said method being implemented by a system comprising:
a network module built into a sender computer and adapted to:
establish a connection between the sender computer and a receiver computer;
receive and transmit network packets over a connection between the client and a server;
determining a size and forming a plurality of packets (segments) for transmission over the established connection;
detecting usage of Nagle's algorithm in the established connection;
disabling the usage of Nagle's algorithm for the established connection (See U.S. Pat. No. 7,970,864, IPC G06F 15/16).
The method comprises:
receiving, by the network module of the sender computer system, a request from a sending application to transmit data over a network connection to the receiver computer system;
generating, by the network module, one or more segments to be transmitted to the receiver computer system over the network connection;
determining, by the network module, whether the one or more segments to be transmitted are small segments, and whether reception of a previously transmitted small segment is acknowledged by the receiver computer;
if the previously transmitted small segment is not acknowledged by the receiver computer and at least one of the segments to be transmitted is a small segment, then detecting, by a Nagling detector in the sender computer system, usage of Nagle's algorithm in the network connection;
in response to detection of the usage of Nagle's algorithm in the network connection, transmitting, by the Nagling detector, a warning on the detected usage of Nagle's algorithm, the warning comprising both a signal for the receiver computer system and a signal for the sending application.
Particular embodiments of the method further provide for:
generating, by the sender computer system, one or more segments to be transmitted to the receiver computer system in response to the received data transmission request;
the determining by the sender computer system whether the one or more segments to be transmitted are small segments comprising determining, by the sender computer system, whether the one or more segments are smaller than a maximum segment size (MSS) for the network connection;
in response to detection of the usage of Nagle's algorithm in the network connection, disabling Nagle's algorithm for the network connection by the sender computer system.
However, the method does not provide for any solution to increase transmission rate in encapsulation of TCP/IP packets into HTTP.
Another known method for providing a maximum transmission unit of network packets is implemented in a system comprising:
a network module built into a client computer and adapted to:
establish a connection between the client computer and a server;
receive and transmit network packets on the connection between the client and the server;
perform encryption of network packets for the established connection;
adjust the maximum transmission unit of network packets,
the method comprising:
establishing, by the network module, a connection between the client and the server, and performing, by the network module, encryption of a plurality of network packets for the connection;
receiving, by the network module from the server via the connection, a plurality of packets destined for the client, the plurality of network packets being transmitted to the server with the maximum unit size;
determining a packet size increment caused by encryption performed for each of the plurality of network packets;
adjusting the maximum transmission unit of the network packets relative to the size of a network packet from the plurality of network packets of the connection that has the largest size; and
transmitting the plurality of network packets to the client via the connection in accordance with the adjusted maximum transmission unit (See U.S. Pat. No. 8,014,421, IPC H04J3/16).
In some embodiments, the method further comprises establishing a connection including a Secure Socket Layer (SSL) or a secure transport layer tunnel.
Furthermore, in implementation of the method, said adjusting of the maximum transmission unit of network packets may comprise determining a value of network throughput.
The above method is considered to be known.
However, the known method suffers from low data transmission rate if there are two or more proxy-servers (proxies) between the client computer and the server computer, since said method does not allow to prevent delays of encapsulated traffic in hops between the proxies.